package com.wxzhou.wangzhuan.constants;

/**
 * Redis键名统一管理中心
 *
 * <h3>命名规范：</h3>
 * <ul>
 *   <li>CACHE_* : @CacheResult注解使用的缓存名</li>
 *   <li>KEY_* : 手动构建的Redis键名片段</li>
 *   <li>INDEX_* : Meilisearch索引名</li>
 * </ul>
 *
 * <h3>前缀说明：</h3>
 * <ul>
 *   <li>@CacheResult注解缓存：使用 quarkus.cache.redis.prefix=wangzhuan:{cache-name} 自动加前缀</li>
 *   <li>手动Redis键：使用 redis.manual.prefix=wangzhuan: 手动加前缀</li>
 * </ul>
 *
 * @author 系统生成
 * @since 2.0
 */
public final class CacheNames {

    private CacheNames() {
    } // 防止实例化

    public static final String KEY_TOKEN = "token";

    public static final String CACHE_WITHDRAW_CONFIG = "withdraw-config";


    public static final String CACHE_THIRD_PAY_CONFIG = "third-pay-config";

    public static final String CACHE_READER_CONFIG = "reader-config";

    public static final String CACHE_SYSTEM_CONFIG = "system-config";

    // 提现相关Redis键名常量
    
    // 当日提现统计
    public static final String KEY_WITHDRAW_DAILY_PREFIX = "withdraw:daily:";
    //交税协议锁定键
    public static final String KEY_LOCK_PREFIX = "taxagreement:";

    //今日用户累计最大补贴快照
    public static final String KEY_TODAY_BUTIE_PREFIX = "maxbutie:";

    public static final String KEY_USER_BUTIE_PREFIX = "butie";

    public static final String KEY_WITHDRAW_DAILY_COUNT_SUFFIX = ":count";
    public static final String KEY_WITHDRAW_DAILY_AMOUNT_SUFFIX = ":amount";
    
    // 最后提现时间
    public static final String KEY_WITHDRAW_LAST_PREFIX = "withdraw:last:";
    
    // 特定金额提现统计
    public static final String KEY_WITHDRAW_AMOUNT_PREFIX = "withdraw:amount:";
    
    // 累计提现统计
    public static final String KEY_WITHDRAW_TOTAL_PREFIX = "withdraw:total:";
    public static final String KEY_WITHDRAW_TOTAL_COUNT_SUFFIX = "count:";
    public static final String KEY_WITHDRAW_TOTAL_AMOUNT_SUFFIX = "amount:";
    
    // 分布式锁
    public static final String KEY_WITHDRAW_LOCK_PREFIX = "withdraw:lock:";

    // 实名分布式锁
    public static final String KEY_REALNAME_LOCK_PREFIX = "realname:lock:";

    // 绑定提现分布式锁
    public static final String KEY_BIND_WITHDRAW_LOCK_PREFIX = "bind:withdraw:lock:";

    // 用户提现统计面板
    public static final String KEY_WITHDRAW_SUMMARY_PREFIX = "withdraw:summary:";

    //场景对应的广告相关渠道数据，后台配置时清空
    public static final String CACHE_SENSE_ADINFO_CONFIG = "channel_sense";

    //app对应的渠道标识集
    public static final String CACHE_CHANNEL_ADINFO_CONFIG = "channel_sense:all";

    //批量转账订阅通知关键字
    public static final String BATCH_TRANSFER_CHANNEL = "batch_transfer_channel";

    //批量日志关键字
    public static final String BATCH_ADLOG_CHANNEL = "batch_adlog_channel";
}